/*
	vertexdefinitions.h

	Copyright (C) 2004 WildTangent, Inc. 
	All Rights Reserved

	Travis Baldree
	2/26/2004

*/

#ifndef VERTEXDEFINITIONS_H
#define VERTEXDEFINITIONS_H

#include <d3d9.h>
#include <d3dx9.h>

#include "constants.h"

struct FADEVERTEX
{
	D3DXVECTOR3	v;
	D3DCOLOR	color;

};

#define D3DFVF_FADEVERTEX (D3DFVF_XYZ  | D3DFVF_DIFFUSE )

struct D3DSIMPLEVERTEX
{
	D3DXVECTOR3	p;
};
#define D3DFVF_D3DSIMPLEVERTEX (D3DFVF_XYZ)


struct PLAINVERTEXMODEL
{
	D3DXVECTOR3	v;
	D3DXVECTOR3	n;
	float32		tu;
	float32		tv;
};

#define D3DFVF_PLAINVERTEXMODEL (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0))

struct PLAINVERTEXSCENE
{
	D3DXVECTOR3	v;
	D3DCOLOR	color;
	float32		tu;
	float32		tv;
};

#define D3DFVF_PLAINVERTEXSCENE (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0) )

struct SHADOWVERTEXSCENE
{
	D3DXVECTOR3	v;
	D3DCOLOR	color;
	float32		tu;
	float32		tv;
	float32		tu2;
	float32		tv2;
};

#define D3DFVF_SHADOWVERTEXSCENE (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX2 | D3DFVF_TEXCOORDSIZE2(0) | D3DFVF_TEXCOORDSIZE2(1) )

struct LITPLAINVERTEXSCENE
{
	D3DXVECTOR3	v;
	D3DXVECTOR3	n;
	D3DCOLOR	color;
	float32		tu;
	float32		tv;
};

#define D3DFVF_LITPLAINVERTEXSCENE (D3DFVF_XYZ | D3DFVF_NORMAL |D3DFVF_DIFFUSE | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0) )

struct LITSHADOWVERTEXSCENE
{
	D3DXVECTOR3	v;
	D3DXVECTOR3	n;
	D3DCOLOR	color;
	float32		tu;
	float32		tv;
	float32		tu2;
	float32		tv2;
};

#define D3DFVF_LITSHADOWVERTEXSCENE (D3DFVF_XYZ | D3DFVF_NORMAL |D3DFVF_DIFFUSE | D3DFVF_TEX2 | D3DFVF_TEXCOORDSIZE2(0) | D3DFVF_TEXCOORDSIZE2(1) )

struct TANGENTSPACEVERTEX
{
	D3DXVECTOR3	v;
	D3DXVECTOR3	n;
	float32		tu;
	float32		tv;
	D3DXVECTOR3 u;
};

#define D3DFVF_TANGENTSPACEVERTEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX2 | D3DFVF_TEXCOORDSIZE2(0) | D3DFVF_TEXCOORDSIZE3(1) )

struct SPRITEVERTEX
{
	D3DXVECTOR3	v;
	D3DCOLOR	color;
	float32		tu;
	float32		tv;
};

#define D3DFVF_SPRITEVERTEX (D3DFVF_XYZ  | D3DFVF_DIFFUSE | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0) )

struct FILLSHADOWVERTEX
{
	D3DXVECTOR4	p;
	D3DCOLOR	color;

};
#define D3DFVF_FILLSHADOWVERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)

struct BLURLAYERVERTEX
{
	D3DXVECTOR4	p;
	D3DCOLOR	color;
	float32		tu;
	float32		tv;
};
#define D3DFVF_BLURLAYERVERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0))

#endif